RESIS: A New Methodology for Register Optimization in Software Pipelining
نویسندگان
چکیده
Software pipelining is a widespread technique to nd an instruction-level parallel schedule for loops. Reducing execution time often results in an increasing demand of resources to execute the loop operations and to store variables. This paper presents a new technique to reduce the register pressure generated by pipelined schedules. The technique nds a new schedule aiming at reducing the number of required registers without modifying the initiation interval of the schedule and the number of resources required to execute the instructions. A two-steps approach is proposed for such a reduction: minimizing the SPAN of the loop and rescheduling operations within a basic block. Experimental results show that further improvements on the schedules found by the best existing techniques can be obtained at the expense of a negligible computational cost.
منابع مشابه
Early Control of Register Pressure for Software Pipelined Loops
The register allocation in loops is generally performed after or during the software pipelining process. This is because doing a conventional register allocation at first step without assuming a schedule lacks the information of interferences between variable lifetime intervals. Thus, the register allocator may introduce an excessive amount of false dependences that reduce dramatically the ILP ...
متن کاملAn Integer Linear Programming Model of Software Pipelining for the MIPS R8000 Processor
In parallelizing the code for high-performance processors, software pipelining of innermost loops is of fundamental importance. In order to beneet from software pipelining, two separate tasks need to be performed: (i) software pipelining proper ((nd the rate-optimal legal schedule), and (ii) register allocation (allocate registers to the found schedule). Software pipelining and register allocat...
متن کاملEarly Periodic Register Allocation on ILP Processors
Register allocation in loops is generally performed after or during the software pipelining process. This is because doing a conventional register allocation as a first step without assuming a schedule lacks the information of interferences between values live ranges. Thus, the register allocator may introduce an excessive amount of false dependences that dramatically reduce the ILP (Instructio...
متن کاملImproving Energy Consumption by Compiler Optimization Technique Register Pipelining
This paper presents a new approach for improving energy consumption of compiler generated software using register pipelining. This technique allows to save memory load operations by temporarily moving array elements into registers which leads to a significant reduction of data traffic between the processor and data memory. Experimental results have shown that this technique saves up to 25% of e...
متن کاملEvaluating the Use of Register Queues in Software Pipelined Loops
ÐIn this paper, we examine the effectiveness of a new hardware mechanism, called Register Queues (RQs), which effectively decouples the architected register space from the physical registers. Using RQs, the compiler can allocate physical registers to store live values in the software pipelined loop while minimizing the pressure placed on architected registers. We show that decoupling the archit...
متن کامل